package person.twj.jwt.core.security.util;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import person.twj.jwt.core.security.constant.TokenConstants;

import java.util.Map;

/**
 * Jwt工具类
 *
 *
 */
@Slf4j
public class JwtUtils
{
    public static String secret = TokenConstants.SECRET;

    /**
     * 从数据声明生成令牌
     *
     * @param claims 数据声明
     * @return 令牌
     */
    public static String createToken(Map<String, Object> claims)
    {
        String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact();
        return token;
    }

    /**
     * 从令牌中获取数据声明
     *
     * @param token 令牌
     * @return 数据声明
     */
    public static Claims parseToken(String token)
    {
        return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
//        try {
//            return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
//        }catch (Exception e){
//            log.error("token解析失败，"+e.getMessage(),e);
//            return null;
//        }
    }






}
